One key.Every model.
Prism gives engineering teams one OpenAI-compatible endpoint in front of every model, and a log that says why each request went where it went.
| Time | Model | Task | Status | Latency | Cost |
|---|---|---|---|---|---|
| 09:41:02 | google/gemini-3.1-flash | summarize | Routed | 340 ms | $0.0021 |
| 09:41:02 | google/gemini-3.1-flash | summarize | Routed | 318 ms | $0.0019 |
| 09:41:01 | deepseek/deepseek-v4-pro | summarize | Routed | 602 ms | $0.0074 |
| 09:41:00 | google/gemini-3.1-flash | summarize | Routed | 355 ms | $0.0022 |
| 09:40:59 | anthropic/claude-sonnet-5 | summarize | Pinned | 540 ms | $0.0186 |
| 09:40:58 | google/gemini-3.1-flash | summarize | Routed | 331 ms | $0.0020 |
| Time | Model | Task | Status | Latency | Cost |
|---|---|---|---|---|---|
| 09:38:11 | anthropic/claude-fable-5-1 | plan | Over budget | 1,180 ms | $0.4210 |
| 09:38:04 | openai/gpt-5.6 | plan | Routed | 742 ms | $0.1180 |
| 09:37:52 | anthropic/claude-sonnet-5 | draft | Routed | 533 ms | $0.0402 |
| 09:37:41 | qwen/qwen3.8-max | draft | Routed | 705 ms | $0.0176 |
| 09:37:30 | google/gemini-3.1-flash | classify | Routed | 328 ms | $0.0009 |
| 09:37:12 | meta/llama-4-maverick | classify | Routed | 214 ms | $0.0006 |
| Time | Model | Task | Status | Latency | Cost |
|---|---|---|---|---|---|
| 09:41:07 | openai/gpt-5.6 | chat | Timed out | 8,000 ms | — |
| 09:41:07 | anthropic/claude-sonnet-5 | chat | Fallback | 561 ms | $0.0140 |
| 09:41:03 | openai/gpt-5.6 | chat | 529 | 210 ms | — |
| 09:41:03 | anthropic/claude-sonnet-5 | chat | Fallback | 548 ms | $0.0139 |
| 09:40:58 | openai/gpt-5.6 | chat | Routed | 690 ms | $0.0121 |
| 09:40:54 | openai/gpt-5.6 | chat | Routed | 668 ms | $0.0118 |
| Time | Model | Task | Status | Latency | Cost |
|---|---|---|---|---|---|
| 09:35:12 | google/gemini-3.1-pro | extract | Routed | 4,120 ms | $2.3100 |
| 09:31:44 | google/gemini-3.1-pro | extract | Routed | 3,980 ms | $2.2400 |
| 09:28:03 | anthropic/claude-fable-5-1 | extract | Too long | — | — |
| 09:27:58 | google/gemini-3.1-pro | extract | Fallback | 4,301 ms | $2.4000 |
| 09:19:22 | google/gemini-3.1-pro | extract | Routed | 3,870 ms | $2.1900 |
| 09:11:07 | google/gemini-3.1-pro | extract | Routed | 4,044 ms | $2.2700 |
| Time | Model | Task | Status | Latency | Cost |
|---|---|---|---|---|---|
| 09:40:02 | anthropic/claude-sonnet-5 | code | Pinned | 528 ms | $0.0310 |
| 09:39:58 | anthropic/claude-sonnet-5 | code | Pinned | 544 ms | $0.0298 |
| 09:39:51 | anthropic/claude-sonnet-5 | code | Pinned | 502 ms | $0.0281 |
| 09:39:44 | deepseek/deepseek-v4-pro | code | Routed | 618 ms | $0.0102 |
| 09:39:31 | anthropic/claude-sonnet-5 | code | Pinned | 559 ms | $0.0305 |
| 09:39:18 | deepseek/deepseek-v4-pro | code | Routed | 604 ms | $0.0099 |
| Time | Model | Task | Status | Latency | Cost |
|---|---|---|---|---|---|
| 09:38:11.204 | router | policy match | production | 4 ms | — |
| 09:38:11.208 | router | model chosen | best_quality | 31 ms | — |
| 09:38:11.239 | anthropic | request sent | us-east | 1,180 ms | $0.4210 |
| 09:38:12.419 | anthropic | response | 1,932 tokens | — | — |
| 09:38:12.421 | router | logged | req_8fa21c | 2 ms | — |
Eleven providers. One invoice, at their list price.
- OpenAI
- Anthropic
- Meta
- Mistral
- DeepSeek
- xAI
- Alibaba
Route by policy, not by hand.
A policy is a short file of rules: what to prefer, when to fall back, where the budget stops. Commit it beside your code and every request obeys it.
- Cheapest above a quality floor, fastest within a margin, best under a price cap — or a pinned model.
- Fallbacks fire inside the same call, even mid-stream, and the log records both legs.
production.policy.yml
live-
when task is summarize
then prefer cheapest above quality 75
-
when p95 latency over 800 ms
then fall back to the next provider
-
when context over 400K tokens
then route to gemini-3.1-pro
-
when key spend over $200 today
then downgrade to fast tier and alert
Pushed 4 minutes ago · 2,318 requests routed since
Spend by model
September, to date
$4,322
−31% vs. August at the same point
-
$1,842
Sonnet 5
-
$1,210
GPT-5.6
-
$412
Gemini Flash
-
$388
DeepSeek V4
-
$296
Llama 4
-
$174
Others
See every token you spend.
Spend, tokens and latency by model, key and policy — live, and exportable as a row per request. The bill stops being a surprise.
- Per-key budgets with alerts at 50, 80 and 100 percent, and a soft-stop that downgrades instead of failing.
- Quality scores from a judge you pick, on your own traffic, so the router learns what good looks like for you.
Every model behind one endpoint.
Prism is OpenAI-compatible. Change the base URL and the model id, keep everything else, and the whole catalog is one request away.
Read the quickstartroute.py
from openai import OpenAI
client = OpenAI(
base_url="https://api.prism.example/v1", # was api.openai.com
api_key="pk_live_…",
)
reply = client.chat.completions.create(
model="prism/auto", # the policy picks the model
messages=[{"role": "user", "content": prompt}],
)
print(reply.headers["x-prism-route"])
# → google/gemini-3.1-flash · cheapest_above(80) · $0.0021
- 140+
- Models behind one endpoint
- 11
- Providers, one invoice
- 99.99%
- Routed uptime, trailing 90 days
- 38 ms
- Median routing overhead
Built for the workloads that actually run.
- Agents
- Give an agent one key and let each step pick its own model — planning on a frontier model, tool calls on a fast one.
- model: "prism/auto"
- Batch pipelines
- Route a million overnight classifications to whatever is cheapest above your quality floor, with the bill capped in advance.
- policy: "cheapest-above-80"
- Consumer chat
- Keep first-token time under 300 ms at peak by spilling over to the next provider before anyone notices.
- fallback: ["meta", "google"]
We cut our model bill by a third in the first week and nobody on the team noticed a quality change. The log is what sold me: I can see why every request went where it went.
Priya Anand
Head of Platform, Loamworks
From the blog
Benchmarks, routing notes and what we learned running traffic for other teams.
Point your client at Prism. Keep everything else.
Free for a million routed tokens a month. Provider prices at list, on one invoice.